/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package educar.abmResolucion;

import educar.models.Alumno;
import educar.models.Resolucion;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

/**
 * <hr>
 * Clase AgregarResolucionController: En esta clase se encuentran los metodos  
 * necesarios para agregar una resolucion tanto a la base de datos como a la tabla.
 * <hr>
 * @author Flubber
 */
public class AgregarResolucionController implements ActionListener{
    
    //Atributo usado para crear una ventana    
    private AgregarResolucionView agregarResolucionView;
    
    //Arreglo usado para almacenar los datos de la resolucion
    private String vector[] = new String[3];
    
    //Atributo usado para almacenar una instancia de ResolucionController    
    private ResolucionController resolucionControl;
   
// <editor-fold defaultstate="collapsed" desc="Constructor">
    /**
     * <hr>
     * AgregarResolucionController(): Constructor de la clase AgregarResolucionController
     * <hr>
     * @param resolucionController 
     */     
    public AgregarResolucionController(ResolucionController resolucionControler){        
        resolucionControl = resolucionControler;
        agregarResolucionView = new AgregarResolucionView();
        agregarResolucionView.setActionListener(this);
    }
 // </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Action setView">    
    /**
     * <hr>
     * setView(): Este metodo hace visible a una ventana.
     * <hr>
     */    
    public void setView() {
        agregarResolucionView.setVisible(true);
    }
// </editor-fold>  

// <editor-fold defaultstate="collapsed" desc="Metodos ActionPermormed">    
    /**
     * <hr>
     * actionPerformed(): Este metodo recibe el evento de un boton.
     * Boton CANCELAR cierra la ventana.
     * Boton ACEPTAR agrega la resolucion a la base de datos y a la tabla.
     * <hr>
     */    
    @Override
    public void actionPerformed(ActionEvent e) {
        //Evalua la procedencia del evento del boton        
        Object source = e.getSource();
        if (agregarResolucionView.getJbCancelar() == source){ //Boton Cancelar
            agregarResolucionView.dispose();
        }
        if (agregarResolucionView.getJbAceptar() == source){  //Boton Aceptar
            vector[0] = agregarResolucionView.getNroAlumno();
            vector[1] = agregarResolucionView.getCodActividad();
            vector[2] = agregarResolucionView.getSolucion(); 
            if (!((vector[0].length() == 0) || (vector[1].length() == 0) || (vector[2].length() == 0))) {
                if ((Alumno.exist(vector[0]))){// && (Actividad.exist(vector[1]))) {
                    Resolucion resolucion = new Resolucion(vector);
                    if (resolucion.save()) {                           
                        resolucionControl.agregarATabla(vector);
                        agregarResolucionView.dispose();
                    } else {     //El usuario ya existe
                        JOptionPane.showMessageDialog(null,"Ya existe un registro con el Nro de Alumno "+ vector[0]+" y el Codigo de la Actividad"+ vector[1]+".","proyecto 2012",JOptionPane.WARNING_MESSAGE);
                    }
                } else{
                    JOptionPane.showMessageDialog(null,"Alguno de los campos no existe","proyecto 2012",JOptionPane.WARNING_MESSAGE);
                }
            } else {    //No se ingresaron todos los datos de el usuario
                JOptionPane.showMessageDialog(null,"Existe al menos un campo sin completar.\n\nRevise los campos ingresados","proyecto 2012",JOptionPane.WARNING_MESSAGE);
            }
        }
    }//Fin del metodo actionPerformed().  
// </editor-fold>
    
}//Fin de la clase AgregarResolucionController
